<?php
/**
 * 棱镜风控平台公开接口（常用接口）
 * @author 深蓝代码
 * @date 2025-08-04
 * 此项目涉及所有代码所有权均归 三河腾享科技有限公司 所有，
 * 任何形式的 reproduction、copy、distribution、public display、public performance、
 * 或任何其他形式的使用、处理、传输、传输、发布、或再许可，
 * 均严格禁止，任何形式的侵权行为，均视为侵犯著作权，
 * 并将承担由此产生的任何法律责任。
 * 本页面实现的接口列表如下：
 * 1. 查询用户举报记录
 * 2. 查询公开审核规则列表
 * 3. 查询用户认证记录
 * 4. 查询用户认证详情
 */
class PrgController extends BaseController {
    /**
     * Redis缓存实例
     * @var Redis
     */
    private $redis;

    // 队列键名常量
    const QUEUE_REPORT = "queue:report";
    const QUEUE_CERTIFICATION = "queue:certification";
    const QUEUE_MEDIA_AUDIT = "queue:media_audit";
    const QUEUE_COLLECTION_AUDIT = "queue:collection_audit";
    const QUEUE_COMMENT_AUDIT = "queue:comment_audit";

    public function __construct() {
        parent::__construct();
        // 初始化Redis连接
        $this->redis = new ZDRedis();
    }

    /**
     * 提交合集审核
     * 
     * @param {string} params.name - 合集名称
     * @param {string} params.description - 合集描述
     */
    function actionSubmitCollection(){
        $params = [            
            'name'=>(string)arg("name"),
            'description'=>(string)arg("description"),
        ];
        $params['collection_id'] = 'COL-'.uniqid();
        $params['submit_user_id'] = (string)arg("submit_user_id");
        $params['submit_time'] = date("Y-m-d H:i:s");
        $params['audit_status'] = 1;
        $params['claimed_status'] = 1;

        // 验证必填字段
        $requiredFields = ['name'];
        foreach ($requiredFields as $field) {
            if (empty($params[$field])) {
                error("{$field}不能为空");
            }
        }

        // 验证描述长度
        if (mb_strlen($params['description']) > 200) {
            error("描述长度不能超过200个字符");
        }
        // 验证名称长度
        if (mb_strlen($params['name']) > 100) {
            error("名称长度不能超过100个字符");
        }

        $this->redis->lpush(self::QUEUE_COLLECTION_AUDIT,json_encode($params)); // 合集审核允许一定延时，添加到队列等待分布式处理
        success([
            'collection_id' => $params['collection_id'],
            'status' => 'submitted',
            'message' => '提交审核成功'
        ]);
        
    }
    /**
     * 获取合集审核结果
     * @param {string} params.collection_id - 合集ID
     */
    function actionGetCollectionStatus(){
        $collection_id = (string)arg("collection_id");
        $collectionModel = new Collection();
        $collectionInfo = $collectionModel->find(["collection_id"=>$collection_id]);
        if(!$collectionInfo){
            error("合集不存在");
        }
        success($collectionInfo);
    }

    /**
     * 提交言论审核
     * @param {string} params.parent_id - 父评论ID（可选）
     * @param {string} params.content - 评论内容
     * @param {number} params.content_type - 内容类型（1：文本，2：图片，3：视频）
     * @param {string} params.related_id - 关联内容ID（可选）
     * @param {string} params.related_type - 关联内容类型（media：媒体，collection：收藏，none：无）
     * @param {number} params.is_anonymous - 匿名状态（0：否，1：是）
     * @param {number} params.app_id - 应用ID
     */
    function actionSubmitComment(){
        $params = [
            'parent_id'=>(string)arg("parent_id"),
            'content'=>(string)arg("content"),
            'content_type'=>(int)arg("content_type"),
            'related_id'=>(string)arg("related_id"),
            'related_type'=>(string)arg("related_type"),
            'is_anonymous'=>(int)arg("is_anonymous")
        ];

        $params['comment_id'] = 'COM-'.uniqid();
        
        // 验证必填字段
        $requiredFields = ['content', 'content_type'];
        foreach ($requiredFields as $field) {
            if (empty($params[$field])) {
                error("{$field}不能为空");
            }
        }

        // 验证关联内容类型
        if (!in_array($params['related_type'], ['media', 'collection', 'none'])) {
            error("关联内容类型无效");
        }
        // 验证关联内容ID
        if ($params['related_type'] !== 'none' && empty($params['related_id'])) {
            error("关联内容ID不能为空");
        }

        // 验证内容类型
        if (!in_array($params['content_type'], [1, 2, 3])) {
            error("内容类型无效");
        }
        // 验证匿名状态
        if (!in_array($params['is_anonymous'], [0, 1])) {
            error("匿名状态无效");
        }

        // 构造其他参数
        $app_id = (int)arg("app_id");
        $application = new OpenApplication();
        $applicationInfo = $application->find(["id"=>$app_id,"status"=>1]);
        if(!$applicationInfo){
            error("应用不存在或已禁用");
        }
        $auditor = new Auditor();
        $user = $auditor->find(['id'=>$applicationInfo['user_id']]);   
        if(!$user){
            error("应用所属用户不存在");
        }
        $params['submit_user_id'] = $user['user_id'];
        $params['user_nickname'] = $user['user_nickname'];
        $params['submit_time'] = date("Y-m-d H:i:s");
        $params['audit_status'] = 1;
        $params['has_sensitive'] = 0;
        $params['is_deleted'] = 0;
        $params['is_top'] = 0;
        $params['chk_num'] = 0;
        $params['claimed_status'] = 1;

        $this->redis->lpush(self::QUEUE_COMMENT_AUDIT,json_encode($params)); // 评论审核允许一定延时，添加到队列等待分布式处理
        success([
            'comment_id' => $params['comment_id'],
            'status' => 'submitted',
            'message' => '提交审核成功'
        ]);
    }

    /**
     * 获取言审结果
     * @param {string} params.comment_id - 评论ID
     */
    function actionGetCommentStatus(){
        $comment_id = (string)arg("comment_id");
        if(empty($comment_id)){
            error("评论ID不能为空");
        }
        $commentModel = new Comment();
        $comment = $commentModel->find(["comment_id"=>$comment_id]);
        if(!$comment){
            error("评论不存在");
        }
        success($comment);
    }

    /**
     * 查询用户举报记录
     * @param {string} params.reportUserId - 举报人用户ID
     * @param {number} params.page - 页码（默认1）
     * @param {number} params.pageSize - 每页条数（默认10）
     * @returns {Promise<Object>} 举报记录列表
     */
    function actionGetUserReports() {
        // 保持不变...
        $reportUserId = (string)arg("reportUserId", "");
        $page = (int)arg("page", 1);
        $pageSize = (int)arg("pageSize", 10);
        
        if (empty($reportUserId)) {
            error("用户ID不能为空");
        }

        $cacheKey = "user_reports:{$reportUserId}:{$page}:{$pageSize}";
        $cachedData = $this->redis->get($cacheKey);
        if ($cachedData) {
            success(json_decode($cachedData, true));
        }

        // 计算分页
        $offset = ($page - 1) * $pageSize;
        $reportModel = new ReportTo();
        $where = ["report_user_id" => $reportUserId];
        $reports = $reportModel->findAll(
            $where,
            "report_time DESC",
            $pageSize,
            $offset
        );
        $total = $reportModel->findCount($where);

        $result = [
            "list" => $reports,
            "total" => $total,
            "page" => $page,
            "pageSize" => $pageSize
        ];

        // 缓存10分钟（举报状态可能会更新）
        $this->redis->setex($cacheKey, 600, json_encode($result));
        
        success($result);
    }

    

    /**
     * 获取公开审核规则列表
     * @param {string} params.applyType - 适用类型（媒体/言论/合集/全部，默认全部）
     * @returns {Promise<Object>} 规则列表
     */
    function actionGetPublicAuditRules() {
        $applyType = (string)arg("applyType", "全部");
        $cacheKey = "audit_rules:{$applyType}";
        
        // 尝试从缓存获取
        $cachedRules = $this->redis->get($cacheKey);
        if ($cachedRules) {
            success(json_decode($cachedRules, true));
        }

        // 缓存未命中，查询数据库
        $ruleModel = new Rule();
        $where = ["status" => 1]; // 只返回启用状态的规则
        if ($applyType !== "全部") {
            $where["apply_type"] = $applyType;
        }
        $rules = $ruleModel->findAll($where);
        
        // 存入缓存（有效期1小时）
        $this->redis->setex($cacheKey, 3600, json_encode($rules));
        success($rules);
    }

    /**
     * 检查内容是否包含敏感词
     * @param {string} params.content - 待检查内容
     * @param {int} params.level - 敏感级别筛选（1-低/2-中/3-高，默认全部）
     * @returns {Promise<Object>} 敏感词检查结果（是否包含、敏感词列表、类型）
     */
    function actionCheckSensitiveWord() {
        $content = (string)arg("content", "");
        $level = (int)arg("level", 0);
        
        if (empty($content)) {
            return error("内容不能为空");
        }

        // 从数据库查询启用的敏感词
        $sensitiveModel = new SensitiveWords();
        $where = ["status" => 1];
        if ($level > 0) {
            $where["level"] = $level;
        }
        $words = $sensitiveModel->findAll($where);
        
        $hitWords = [];
        foreach ($words as $word) {
            $matchMode = $word['match_mode'];
            $targetWord = $word['word'];
            // 精确匹配
            if ($matchMode == 1 && strpos($content, $targetWord) !== false) {
                $hitWords[] = [
                    'word' => $targetWord,
                    'type' => $word['word_type'],
                    'level' => $word['level']
                ];
            }
            // 模糊匹配（忽略特殊字符）
            if ($matchMode == 2) {
                $pattern = preg_quote($targetWord, '/');
                if (preg_match("/{$pattern}/i", $content)) {
                    $hitWords[] = [
                        'word' => $targetWord,
                        'type' => $word['word_type'],
                        'level' => $word['level']
                    ];
                }
            }
        }

        success([
            'has_sensitive' => count($hitWords) > 0 ? 1 : 0,
            'sensitive_words' => $hitWords
        ]);
    }

    /**
     * 提交媒体内容审核
     * @param {string} params.description - 内容描述（参考au_audit_data的discription）
     * @param {int} params.content_type - 内容类型（1-图片/2-视频/3-音频/4-文档）
     * @param {string} params.content_url - 资源URL
     * @param {string} params.title - 标题
     * @param {string} params.category - 分类
     * @param {string} params.cover_url - 封面URL
     * @param {string} params.pub_time - 发布时间
     * @param {int} params.priority - 优先级
     * @param {string} params.platform - 平台
     * @param {string} params.channel - 渠道
     * @param {string} params.tags - 标签
     * @param {int} params.is_original - 是否原创
     * @param {string} params.extra - 额外信息
     * @param {string} params.remark - 备注
     * @param {int} params.collection_id - 合集ID,如果内容是合集的一部分，需要传入合集ID，合集ID可以从提交合集审核接口获取
     * 
     * 
     * @returns {Promise<Object>} 提交结果（审核ID、状态）
     */
    function actionSubmitMediaAudit() {
        $params = [
            'description' => (string)arg("description"),
            'content_type' => (int)arg("content_type"),
            'content_url' => (string)arg("content_url"),
            'title' => (string)arg("title"),
            'category'=> (string)arg("category"),
            'cover_url'=> (string)arg("cover_url"),
            'pub_time' => (string)arg("pub_time"),
            'priority' => (int)arg("priority"),
            'platform' => (string)arg("platform"),
            'channel' => (string)arg("channel"),
            'tags' => (string)arg("tags"),
            'is_original' => (int)arg("is_original"),
            'extra' => (string)arg("extra"),
            'remark' => (string)arg("remark"),
            'collection_id' => (int)arg("collection_id"),
        ];
        
        
        // 验证必填参数
        foreach (['content_id', 'content_type', 'content_url', 'title'] as $key) {
            if (empty($params[$key])) {
                error("参数{$key}不能为空");
            }
        }
        // 构造其他必须参数
        // 业务ID（如"MED-8721"，加长长度适配更多场景）
        $params['content_id'] = "MED-".uniqid();
        $params['audit_status'] = 1; // 初始状态为待审核
        $params['ai_preview_result'] = 0; // 初始AI预审状态为待审核
        $params['ai_preview_time'] = date('Y-m-d H:i:s'); // 初始AI预审时间为当前时间
        $params['is_illegal'] = 2;
        $params['claimed_status'] = 1; // 初始状态为未认领
        // 获取渠道ID
        $app_id = (int)arg("app_id");
        $application = new OpenApplication();
        $applicationInfo = $application->find(["id"=>$app_id,"status"=>1]);
        if(!$applicationInfo){
            error("应用不存在或已禁用");
        }
        $auditor = new Auditor();
        $user = $auditor->find(['id'=>$applicationInfo['user_id']]);        
        $params['submit_user_id'] = $user['id'];
        $params['submit_user_nickname'] = $user['real_name'];
        $certification = new Certification();
        $certificationInfo = $certification->find(['user_id'=>$user['id']]);        
        $params['submit_user_auth_type'] = $certificationInfo['cert_type'];
        $params['submit_time'] = date('Y-m-d H:i:s');

        $this->redis->lpush(self::QUEUE_MEDIA_AUDIT,json_encode($params)); // 普通媒体审核允许一定延时，添加到队列等待分布式处理
        success([
            'content_id' => $params['content_id'],
            'status' => 'submitted',
            'message' => '提交审核成功'
        ]);
    }

    /**
     * 查询媒体审核状态
     * @param {string} params.content_id - 媒体业务ID
     * @returns {Promise<Object>} 审核状态详情
     */
    function actionGetMediaAuditStatus() {
        $contentId = (string)arg("content_id");
        if (empty($contentId)) {
            error("content_id不能为空");
        }

        $mediaModel = new MediaContent();
        $media = $mediaModel->find(["content_id" => $contentId]);
        if (!$media) {
            error("媒体内容不存在");
        }

        // 审核状态映射
        $statusMap = [
            1 => '待审核',
            2 => '审核通过',
            31 => '拒绝-涉黄',
            32 => '拒绝-涉政',
            33 => '拒绝-广告',
            34 => '拒绝-其他',
            4 => '再次审核'
        ];

        success([
            'content_id' => $media['content_id'],
            'title' => $media['title'],
            'audit_status' => $media['audit_status'],
            'status_text' => $statusMap[$media['audit_status']] ?? '未知状态',
            'audit_time' => $media['audit_time'],
            'reject_reason' => $media['illegal_details'] ?? ''
        ]);
    }

    /**
     * 提交举报信息
     * @param {string} params.reported_id - 被举报内容ID
     * @param {string} params.reported_type - 被举报类型（媒体/言论/合集/认证）
     * @param {string} params.report_reason - 举报原因
     * @param {string} params.report_user_id - 举报人ID
     * @returns {Promise<Object>} 举报结果（加入队列）
     */
    function actionSubmitReport() {
        $params = [
            'reported_id' => (string)arg("reported_id"),
            'reported_type' => (string)arg("reported_type"),
            'report_reason' => (string)arg("report_reason"),
            'report_user_id' => (string)arg("report_user_id")
        ];

        // 验证必填参数
        foreach (['reported_id', 'reported_type', 'report_reason', 'report_user_id'] as $key) {
            if (empty($params[$key])) {
                error("参数{$key}不能为空");
            }
        }

        // 生成举报业务ID
        $reportId = "REP-" . date('Ymd') . rand(1000, 9999);
        $params['report_id'] = $reportId;
        $params['report_time'] = date('Y-m-d H:i:s');
        $params['handle_status'] = '1'; // 1-待处理

        // 写入数据库
        $reportModel = new ReportTo();
        $addid = $reportModel->create($params);
        if ($addid != false) {
            // 加入举报处理队列
            $this->redis->lPush(self::QUEUE_REPORT, json_encode($params));
            success([
                'report_id' => $reportId,
                'message' => '举报提交成功，等待处理'
            ]);
        } else {
            error("举报提交失败" );
        }
    }

    /**
     * 查询举报处理状态
     * @param {string} params.report_id - 举报业务ID
     * @returns {Promise<Object>} 处理状态详情
     */
    function actionGetReportStatus() {
        $reportId = (string)arg("report_id");
        if (empty($reportId)) {
            error("report_id不能为空");
        }

        $reportModel = new ReportTo();
        $report = $reportModel->find(["report_id" => $reportId]);
        if (!$report) {
            error("举报记录不存在");
        }

        $statusMap = [
            '1' => '待处理',
            '2' => '已处理',
            '3' => '驳回'
        ];

        success([
            'report_id' => $report['report_id'],
            'reported_id' => $report['reported_id'],
            'reported_type' => $report['reported_type'],
            'handle_status' => $report['handle_status'],
            'status_text' => $statusMap[$report['handle_status']] ?? '未知状态',
            'remark' => $report['remark'] ?? '',
            'updated_at' => $report['updated_at']
        ]);
    }

    /**
     * 提交认证申请
     * @param {int} params.cert_type - 认证类型（1-个人/2-企业/3-媒体/4-党政机关/5-其他）
     * @param {int} params.company_type - 企业类型（1-国有企业/2-私营企业/3-外资企业/4-港澳台企业/5-其他）
     * @param {string} params.id_number - 证件号码
     * @param {string} params.realname - 申请人姓名
     * @param {string} params.id_photo_front - 证件正面照片
     * @param {string} params.id_photo_back - 证件反面照片
     * @param {string} params.id_photo_hold - 手持证件照片
     * @param {string} params.company_name - 企业名称
     * @param {string} params.company_number - 企业编号
     * @param {string} params.company_certificate - 企业资质
     * @param {string} params.company_address - 企业地址
     * @param {string} params.company_url - 企业网址
     * @param {string} params.legal_rep_name - 法人姓名
     * @param {string} params.legal_rep_id_photo_front - 法人证件正面照片
     * @param {string} params.legal_rep_id_photo_back - 法人证件反面照片
     * @param {string} params.actual_controller - 实际控制人
     * @param {string} params.writer_identity - 作家身份
     * @param {string} params.agent_authorization - 代理商授权
     * @param {string} params.contact_email - 联系邮箱
     * @param {string} params.contact_phone - 联系电话
     * @returns {Promise<Object>} 认证结果（加入队列）
     */
    function actionSubmitCertification() {
        $params = [
            'cert_type' => (int)arg("cert_type"),
            'company_type'=> (int)arg("company_type"),
            'id_number' => (string)arg("id_number"),
            'realname'=> (string)arg("realname"),
            'id_photo_front' => (string)arg("id_photo_front"),
            'id_photo_back' => (string)arg("id_photo_back"),
            'id_photo_hold' => (string)arg("id_photo_hold"),
            'company_name' => (string)arg("company_name"),
            'company_number' => (string)arg("company_number"),
            'company_certificate' => (string)arg("company_certificate"),
            'company_address' => (string)arg("company_address"),
            'company_url' => (string)arg("company_url"),
            'legal_rep_name' => (string)arg("legal_rep_name"),
            'legal_rep_id_photo_front' => (string)arg("legal_rep_id_photo_front"),
            'legal_rep_id_photo_back' => (string)arg("legal_rep_id_photo_back"),
            'actual_controller' => (string)arg("actual_controller"),
            'writer_identity' => (string)arg("writer_identity"),
            'agent_authorization'=> (string)arg("agent_authorization"),
            'contact_email' => (string)arg("contact_email"),
            'contact_phone' => (string)arg("contact_phone"),
            'apply_time' => date('Y-m-d H:i:s'),
            'audit_status' => 1, // 1-待审核
            'sync_info'=>(string)arg("sync_info"),
            'is_deleted'=>0,
            'claimed_status'=>1,
        ];

        // 获取渠道ID
        $app_id = (int)arg("app_id");
        $application = new OpenApplication();
        $applicationInfo = $application->find(["id"=>$app_id,"status"=>1]);
        if(!$applicationInfo){
            error("应用不存在或已禁用");
        }
        $auditor = new Auditor();
        $user = $auditor->find(['id'=>$applicationInfo['user_id']]);        
        $params['user_id'] = $user['id'];
        $params['creator'] = $user['real_name'];
        $params['updater'] = $user['real_name'];

        // 验证必填参数
        foreach (['user_id', 'cert_type', 'realname', 'id_number', 'contact_phone'] as $key) {
            if (empty($params[$key])) {
                error("参数{$key}不能为空");
            }
        }

        // 生成认证业务ID
        $applyId = "CER-" . date('Ymd') . rand(1000, 9999);
        $params['apply_id'] = $applyId;

        // 加入认证处理队列
        $this->redis->lPush(self::QUEUE_CERTIFICATION, json_encode($params));
        success([
            'apply_id' => $applyId,
            'message' => '认证申请提交成功，等待审核'
        ]);
    }

    /**
     * 查询认证申请状态
     * @param {string} params.apply_id - 认证业务ID
     * @returns {Promise<Object>} 申请状态详情
     */
    function actionGetCertificationStatus() {
        $applyId = (string)arg("apply_id");
        if (empty($applyId)) {
            error("apply_id不能为空");
        }

        $certModel = new Certification();
        $cert = $certModel->find(["apply_id" => $applyId]);
        if (!$cert) {
            error("认证申请记录不存在");
        }

        $statusMap = [
            1 => '待审核',
            2 => '审核通过',
            3 => '审核拒绝',
            4 => '已撤回'
        ];

        success([
            'apply_id' => $cert['apply_id'],
            'user_id' => $cert['user_id'],
            'cert_type' => $cert['cert_type'],
            'audit_status' => $cert['audit_status'],
            'status_text' => $statusMap[$cert['audit_status']] ?? '未知状态',
            'checked_time' => $cert['checked_time'],
            'fail_reason' => $cert['fail_reason'] ?? ''
        ]);
    }

    /**
     * 新增敏感词
     * @param {string} params.word - 敏感词内容
     * @param {string} params.word_alias - 敏感词别名
     * @param {int} params.word_type - 敏感类型
     * @param {int} params.level - 敏感级别
     * @param {int} params.match_mode - 匹配模式
     * @param {string} params.replace_str - 替换字符串
     * @param {int} params.status - 状态
     * @returns {Promise<Object>} 新增结果
     */
    function actionSubmitSensitiveWord(){
        $params = [
            'word' => (string)arg("word"),
            'word_alias' => (string)arg("word_alias"),
            'word_type' => (int)arg("word_type"),
            'level' => (int)arg("level"),
            'match_mode' => (int)arg("match_mode"),
            'replace_str' => (string)arg("replace_str"),
            'status' => (int)arg("status")
        ];

        // 验证必填参数
        foreach (['word', 'word_type', 'level', 'match_mode', 'replace_str', 'status'] as $key) {
            if (empty($params[$key])) {
                error("参数{$key}不能为空");
            }
        }

        // 验证敏感类型
        if (!in_array($params['word_type'], [1, 2, 3, 4, 5, 6])) {
            error("敏感类型参数错误");
        }

        // 验证敏感级别
        if (!in_array($params['level'], [1, 2, 3])) {
            error("敏感级别参数错误");
        }
        

        // 验证匹配模式
        if (!in_array($params['match_mode'], [1, 2])) {
            error("匹配模式参数错误");
        }

        // 验证状态
        if (!in_array($params['status'], [0, 1])) {
            error("状态参数错误");
        }
        

        // 验证替换字符串
        if (empty($params['replace_str'])) {
            $params['replace_str'] = '*'; // 默认替换为*
        }

        $sensitiveModel = new SensitiveWords();
        $address = $sensitiveModel->create($params);
        if (!$address) {
            error("新增敏感词失败");
        }
        success();
    }
    /**
     * 搜索敏感词列表(分页查询)
     * @param {int} params.page - 页码  默认1
     * @param {int} params.limit - 每页数量 默认10
     * @param {string} params.word - 敏感词内容
     * @param {int} params.word_type - 敏感类型
     * @param {int} params.level - 敏感级别
     * @param {int} params.match_mode - 匹配模式
     * @param {int} params.status - 状态
     * @returns {Promise<Object>} 敏感词列表
     */
    function actionGetSensitiveWords(){
        $params = [
            'page' => (int)arg("page",1),
            'limit' => (int)arg("limit",10),
            'word' => (string)arg("word"),
            'word_type' => (int)arg("word_type"),
            'level' => (int)arg("level"),
            'match_mode' => (int)arg("match_mode"),
            'status' => (int)arg("status"),
        ];
        $sensitiveModel = new SensitiveWords();
        // 构造查询条件
        $condition = [];
        if (!empty($params['word'])) {
            $condition['word'] = ['like', '%' . $params['word'] . '%'];
        }
        if (!empty($params['word_type'])) {
            $condition['word_type'] = $params['word_type'];
        }
        if (!empty($params['level'])) {
            $condition['level'] = $params['level'];
        }
        if (!empty($params['match_mode'])) {
            $condition['match_mode'] = $params['match_mode'];
        }
        if (!empty($params['status'])) {
            $condition['status'] = $params['status'];
        }
        // 执行查询
        $records = $sensitiveModel->findAll($condition, "id DESC", "*", array($params['page'], $params['limit']));
        $pager = $sensitiveModel->page;
        success([
            'records' => $records,
            'pager' => $pager
        ]);
    }

}